package com.lxl.action;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;

import com.lxl.model.User;
import com.lxl.service.UserService;

/**
 * 用户_更新用户Action
 * 
 * @author 刘星鹭
 * @Email liuxinglumail@163.com
 * @version 创建时间： 2014年12月2日 下午9:53:24
 */
@Controller
@Transactional
public class UpdateUserAction {
    @Resource
    UserService userService;// 注入用户Service
    private String userName;// 用户名
    private String userPassword = "";// 用户密码
    private String userPasswordAgain;// 用户密码重复
    private String userSex;// 用户性别
    private Date userBirthday = new Date();// 用户生日
    private String failureIncompletedInformation = "failureIncompletedInformation";

    /**
     * 调用本Action时执行本方法
     * 
     * @return 用于Action判断跳转方向的字符串
     */
    public String execute() {
        if (isFailureIncompletedInformation()) {
            return failureIncompletedInformation;
        } else if (!userPassword.equals(userPasswordAgain)) {
            return "failurePasswordWrong";
        } else {
            userService.update(new User(userName, userPassword, userSex,
                    userBirthday));
            return "success";
        }
    }

    /**
     * 获得用户名
     * 
     * @return 用户名
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 设置用户名
     * 
     * @param userName
     *            用户名
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 获得用户密码
     * 
     * @return 用户密码
     */
    public String getUserPassword() {
        return userPassword;
    }

    /**
     * 设置用户密码
     * 
     * @param userPassword
     *            用户密码
     */
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    /**
     * 获得用户密码重复
     * 
     * @return 用户密码重复
     */
    public String getUserPasswordAgain() {
        return userPasswordAgain;
    }

    /**
     * 设置用户密码重复
     * 
     * @param userPasswordAgain
     *            用户密码重复
     */
    public void setUserPasswordAgain(String userPasswordAgain) {
        this.userPasswordAgain = userPasswordAgain;
    }

    /**
     * 获得用户性别
     * 
     * @return
     */
    public String getUserSex() {
        return userSex;
    }

    /**
     * 设置用户性别
     * 
     * @param userSex
     */
    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    /**
     * 获得用户生日
     * 
     * @return 用户生日
     */
    public Date getUserBirthday() {
        return (Date) userBirthday.clone();
    }

    /**
     * 设置用户生日
     * 
     * @param userBirthday
     *            用户生日
     */
    public void setUserBirthday(Date userBirthday) {
        this.userBirthday = (Date) userBirthday.clone();
    }

    /**
     * 判断是否发生信息未填完整错误
     * 
     * @return true为是，false为否
     */
    private boolean isFailureIncompletedInformation() {
        if ("".equals(userName) || "".equals(userPassword)
                || "".equals(userPasswordAgain)) {
            return true;
        } else if (userSex == null || userBirthday == null) {
            return true;
        }
        return false;
    }
}
